package com.whfc.quality.dao;

import com.whfc.quality.dto.QualityIssueDTO;
import com.whfc.quality.entity.QualityIssue;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author : qzexing
 * @version : 1.0
 * @date : 2020-07-29 15:24
 */

public interface QualityIssueMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(QualityIssue record);

    int insertSelective(QualityIssue record);

    QualityIssue selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(QualityIssue record);

    int updateByPrimaryKey(QualityIssue record);

    /**
     * 使用问题类别主键查询问题明细列表
     *
     * @param issueTypeId 问题类别主键
     * @return
     * @author hw
     * @date 2020/8/4 15:46
     **/
    List<QualityIssueDTO> selectByIssueTypeId(@Param("issueTypeId") Long issueTypeId);

    /**
     * 使用组织机构ID查询问题明细
     *
     * @param deptId 组织机构ID
     * @return
     * @author hw
     * @date 2020/8/8 17:01
     **/
    List<QualityIssueDTO> selectByDeptId(@Param("deptId") Integer deptId);

    /**
     * 修改问题明细
     *
     * @param issueId  问题明细表主键
     * @param content  检查内容
     * @param require  整改要求
     * @param duration 整改期限 （天）
     * @return
     * @author hw
     * @date 2020/8/4 16:06
     **/
    void updateByIssueId(@Param("issueId") Long issueId, @Param("content") String content, @Param("require") String require, @Param("duration") Integer duration);

    /**
     * @param issueId 问题明细表主键
     * @return
     * @author hw
     * @date 2020/8/4 16:14
     **/
    void logicDel(@Param("issueId") Long issueId);

    /**
     * 禁用/启用质量问题明细
     *
     * @param issueId 问题明细表主键
     * @param enable  是否启用0-禁用  1-启用
     * @return
     * @author hw
     * @date 2020/8/4 16:38
     **/
    void disableOrEnabledIssue(@Param("issueId") Long issueId, @Param("enable") Integer enable);

    /**
     * 获取质量问题历史列表
     *
     * @param deptId
     * @param pageSize
     * @return
     */
    List<QualityIssueDTO> selectHistoryByDeptIdAndPageSize(@Param("deptId") Integer deptId, @Param("pageSize") Integer pageSize);

    int deleteBatch(@Param("idList")List<Integer> idList);

}